Most embedded memory used in modern integrated circuits (ICs) is predominantly compiled memory. Typically, in ICs comprising a large total amount of memory, the memory is distributed over many memory instances. The term “memory instance” may be defined as an independently functioning memory circuit that can be repeatedly placed and connected in an IC design in a manner consistent with a logic cell in a standard cell library. Often, a larger memory is formed using multiple smaller memory instances, such as, for example, 200 megabits (Mb) or more of memory distributed over tens to hundreds of memory instances.
When memory instances in a conventional IC are compiled, each memory instance is compiled without consideration of the total amount of memory in the IC. The composite yield for all memory in the IC is a function of the total amount of memory in the IC (i.e., the total number of bits in the IC). Since composite IC yield is generally a product of the individual yield of each of the respective memory instances and related circuitry, the larger the number of memory instances in the IC, the lower the composite IC yield. Thus, while individual memory instances may be designed to have a yield high enough to meet prescribed performance specifications, overall IC yield may fall below an acceptable value due, at least in part, to the large number of memory instances, the total number of memory cells and/or the total number of other memory circuits in the IC, which is undesirable.